In the related art, there is a technique of defining a template function according to a description referred to as a template in source code. A compiler determines a type of a parameter, based on a type of an actual argument of a calling source of the template function, and generates a function which includes a parameter of the determined type. Furthermore, there is a technique of defining a template function including a variable number of parameters. In addition, there is a technique referred to as inline optimization in which overhead in a function call is reduced by inserting a process of a called function into a read source of the function.
Japanese Laid-open Patent Publication No. 2002-140198 describes an example of the related art in which, for example, a process of a constructor function is divided into a virtual function pointer setting statement and the other statements, inline expansion is performed on the virtual function pointer setting statement immediately after class variable declaration, and the other statements are expanded in a calling source of the function. In addition, Japanese Laid-open Patent Publication No. 2005-141380 describes another example of the related art in which a dependency between a function definition code and a template parameter is analyzed, in a case of no dependency, a common function is defined a plurality of function definitions before communalization are deleted, and a function call before the communalization is substituted with a common function call.